页面传值是开发中必不可少的业务需求,经常会有在
B页面干完一些事情之后告诉A页面或者传值到A页面。这种需求通常使用属性、闭包、代理、单例、通知几种方式进行实现,下面我们来了解 iOS 页面传值中的闭包传值。
闭包传值的实现思路如下:
  | 
  | 
下面我们就以让第二个界面中的 lable 显示第一个界面 textField 中的文本这个功能为例,了解属性传值的具体实现。首先创建一个 RootViewController 和一个 DetailViewController,在 DetailViewController 中声明一个闭包,并将其声明为 DetailViewController 的属性:
  | 
  | 
然后创建一个 UILabel 用于展示接收到的值:
  | 
  | 
下面,调用 passingValue 这个闭包:
  | 
  | 
现在我们回到  RootViewController 中,创建一个 UITextField 用于接收输入的文本:
  | 
  | 
添加 button 和手势,当点击 button 时响应相应方法进行视图间的切换完成视图间的传值,当轻触视图任意位置时取消键盘的第一响应:
  | 
  | 
下面实现 button 和手势对应的方法:
  | 
  | 
这样我们就利用闭包传值的方式,实现让第二个界面中的 lable 显示第一个界面 textField 中的文本。